home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / samdu220.zip / SABDU001.TXT < prev    next >
Text File  |  1993-04-01  |  67KB  |  1,892 lines

  1. >>SABDU001
  2. ------------------ SABDU001.DLL API: OverView ------------------------
  3.  
  4.             Dynamic Load Library Routines
  5.  
  6. The SABDU001 Dynameic Load Library contains a set of routines for
  7. creating and manipulating diskette type objects.  The sets of routines
  8. are:
  9.     DiskDrive               This are the ones that are usually used.
  10.                             They operate at the logical level.
  11.  
  12.     DDrive                  Drive object
  13.     FDrive                  File object
  14.     MDrive                  Memory object
  15.     VDrive                  Virtual object
  16.  
  17.     DebugOut                Debugging routines
  18.  
  19.     HandleStatus            Callback routine used to communicate
  20.                             progress during long running operations
  21.                             (i.e. formatting a diskette) and status.
  22. >>DDrive
  23. ------------------ SABDU001.DLL API: DDrive objects ------------------
  24.  
  25.  A DDrive (Diskette Drive) is a specialized version of the VDrive
  26.  (Virtual Drive).  It is an object that represents a physical drive.
  27.  
  28.  The following functions are available to manipulate it:
  29.      DDriveCreate        Creates a DDrive object
  30.      DDriveDelete        Deletes a DDrive object
  31.      DDriveFormatTrack   Formats a track
  32.      DDriveForceReset    Issues a reset to the drive
  33.      DDriveReadSectors   Reads a group of sectors from the drive
  34.      DDriveReset         Issues a reset to the drive if it was used
  35.      DDriveSetRead       Sets up for reading from the drive
  36.      DDriveSetWrite      Sets up for writing to the drive
  37.      DDriveWriteSectors  Writes a group of sectors to the drive
  38. >>DDriveCreate
  39. ------------------ SABDU001.DLL API: DDriveCreate --------------------
  40.  
  41.  VOID far * FAR PASCAL DDriveCreate (
  42.                                      char cDrive,
  43.                                      lpfnHANDLESTATUS lpfnNewHandleStatus
  44.                                     )
  45.  
  46.  Creates a DDrive object associated with drive cDrive and returns a
  47.  pointer to it.
  48.  
  49.  lpfnNewHandleStatus points to a callback routine that handles event
  50.  notifications including errors.
  51.  
  52.  Example:
  53.          VOID far *pDriveA ;
  54.  
  55.          pDriveA = DDriveCreate ( 'A', lpfnHandleStatus ) ;
  56. >>DDriveDelete
  57. ------------------ SABDU001.DLL API: DDriveDelete --------------------
  58.  
  59.  VOID       FAR PASCAL DDriveDelete (
  60.                                      pDDrive
  61.                                     )
  62.  
  63.  Deletes the DDrive object pointed to by pDDrive.
  64.  
  65.  Example:
  66.          VOID far *pDriveA ;
  67.  
  68.          pDriveA = DDriveCreate ( 'A' ) ;
  69.          ...
  70.          DDriveDelete ( pDriveA ) ;
  71.          pDriveA = NULL ;
  72. >>DDriveSetRead
  73. ------------------ SABDU001.DLL API: DDriveSetRead -------------------
  74.  
  75.  UINT       FAR PASCAL DDriveSetRead (
  76.                                       VOID far *pDDrive,
  77.                                       UINT nTempType,
  78.                                       UINT nCylinders
  79.                                      )
  80.  
  81.  Prepares the DDrive object pointed to by pDDrive for reading.
  82.  
  83.  nTempType defines the type of diskette expected:
  84.            FD0360 FD0720 FD1200 FD1440 FD2880
  85.  
  86.  nCylinders defines the number of cylinders.
  87.  
  88.  Example:
  89.          VOID far *pDriveA ;
  90.  
  91.          pDriveA = DDriveCreate ( 'A' ) ;
  92.          ...
  93.          DDriveSetRead ( pDriveA, FD0360, NULL ) ;
  94. >>DDriveSetWrite
  95. ------------------ SABDU001.DLL API: DDriveSetWrite ------------------
  96.  
  97.  UINT       FAR PASCAL DDriveSetWrite (
  98.                                        VOID far *pDDrive,
  99.                                        UINT nTempType,
  100.                                        UINT nCylinders
  101.                                       )
  102.  
  103.  Prepares the DDrive object pointed to by pDDrive for writing.
  104.  
  105.  nTempType defines the type of diskette expected:
  106.            FD0360 FD0720 FD1200 FD1440 FD2880
  107.  
  108.  nCylinders defines the number of cylinders.
  109.  
  110.  Example:
  111.          VOID far *pDriveA ;
  112.  
  113.          pDriveA = DDriveCreate ( 'A' ) ;
  114.          ...
  115.          DDriveSetWrite ( pDriveA, FD0360, NULL ) ;
  116. >>DDriveReset
  117. ------------------ SABDU001.DLL API: DDriveReset ---------------------
  118.  
  119.  UINT       FAR PASCAL DDriveReset (
  120.                                     VOID far *pDDrive
  121.                                    )
  122.  
  123.  Resets the DDrive object pointed to by pDDrive.
  124.  
  125.  Example:
  126.          VOID far *pDriveA ;
  127.  
  128.          pDriveA = DDriveCreate ( 'A' ) ;
  129.          ...
  130.          DDriveReset ( pDriveA ) ;
  131. >>DDriveForceReset
  132. ------------------ SABDU001.DLL API: DDriveForceReset ----------------
  133.  
  134.  UINT       FAR PASCAL DDriveForceReset (
  135.                                          VOID far *pDDrive
  136.                                         )
  137.  
  138.  Resets the DDrive object pointed to by pDDrive.
  139.  
  140.  Example:
  141.          VOID far *pDriveA ;
  142.  
  143.          pDriveA = DDriveCreate ( 'A' ) ;
  144.          ...
  145.          DDriveForceReset ( pDriveA ) ;
  146. >>DDriveFormatTrack
  147. ------------------ SABDU001.DLL API: DDriveFormatTrack ---------------
  148.  
  149.  UINT       FAR PASCAL DDriveForceReset (
  150.                                          VOID far *pDDrive,
  151.                                          UNIT nCylinder,
  152.                                          UNIT nHead
  153.                                         )
  154.  
  155.  Formats the track pointed to by DDrive object pointer
  156.  
  157.  Example:
  158.          VOID far *pDriveA ;
  159.  
  160.          pDriveA = DDriveCreate ( 'A' ) ;
  161.          ...
  162.          DDriveFormatTrack ( pDriveA, nCylinder, nHead ) ;
  163. >>DDriveReadSectors
  164. ------------------ SABDU001.DLL API: DDriveReadSectors ---------------
  165.  
  166.  UINT       FAR PASCAL DDriveReadSectors (
  167.                                           VOID far *pDDrive,
  168.                                           UNIT nCylinder,
  169.                                           UNIT nHead,
  170.                                           UINT nSector,
  171.                                           UINT nCount,
  172.                                           LPBYTE lpcBuffer
  173.                                          )
  174.  
  175.  Reads a group of sectors from the drive pointerd to by pDDrive
  176.  
  177.  nCylinder     Cylinder to read from
  178.  nHead         Head to read with
  179.  nSector       Starting sector
  180.  nCount        Number of sectors to read
  181.  lpcBuffer     Buffer to contain the data read.
  182.  
  183.  Example:
  184.          VOID far *pDriveA ;
  185.  
  186.          pDriveA = DDriveCreate ( 'A' ) ;
  187.          ...
  188.          DDriveReadSectors ( pDriveA, nCylinder, nHead, nSector,
  189.                              nCount, lpcBuffer ) ;
  190. >>DDriveWriteSectors
  191. ------------------ SABDU001.DLL API: DDriveWriteSectors --------------
  192.  
  193.  UINT       FAR PASCAL DDriveWriteSectors (
  194.                                            VOID far *pDDrive,
  195.                                            UNIT nCylinder,
  196.                                            UNIT nHead,
  197.                                            UINT nSector,
  198.                                            UINT nCount,
  199.                                            LPBYTE lpcBuffer
  200.                                           )
  201.  
  202.  Writes a group of sectors from the drive pointerd to by pDDrive
  203.  
  204.  nCylinder     Cylinder to read from
  205.  nHead         Head to read with
  206.  nSector       Starting sector
  207.  nCount        Number of sectors to read
  208.  lpcBuffer     Buffer to contain the data read.
  209.  
  210.  Example:
  211.          VOID far *pDriveA ;
  212.  
  213.          pDriveA = DDriveCreate ( 'A' ) ;
  214.          ...
  215.          DDriveWriteSectors ( pDriveA, nCylinder, nHead, nSector,
  216.                               nCount, lpcBuffer ) ;
  217. >>DebugOut
  218. ------------------ SABDU001.DLL API: DebugOut objects ----------------
  219.  
  220.  A DebugOut object is a debugging aid:
  221.  
  222.  The following functions are available to manipulate it:
  223.      DebugOutCreate        Creates debug object
  224.      DebugOutOutputIf      Outputs a message
  225.      DebugOutScan          Scans command line for control information
  226.      DebugOutczDebugBuffer Returns pointer to debug buffer
  227. >>DebugOutCreate
  228. ------------------ SABDU001.DLL API: DebugOutCreate ------------------
  229.  
  230. VOID far * FAR PASCAL CEXPORT DebugOutCreate (
  231.                                               LPCSTR lpczCmdLine
  232.                                              ) ;
  233.  
  234.   Command line:
  235.                [/Dxxxxxxxx [/Myyyyyyyy] [/Ffilename]]
  236.  
  237.   xxxxxxxx is a hex string each bit of which can be used to control
  238.            the sending of trace messages
  239.  
  240.   yyyyyyyy is a hex string each bit of which indicates if a control
  241.            message should be displayed in a MessageBox
  242.  
  243.   filename trace file name
  244.  
  245.   Returns a pointer to a debug object.
  246.  
  247. >>DebugOutScan
  248. ------------------ SABDU001.DLL API: DebugOutScan --------------------
  249.  
  250. VOID       FAR PASCAL CEXPORT DebugOutScan   (
  251.                                               LPCSTR lpczCmdLine
  252.                                              ) ;
  253.  
  254.   Command line:
  255.                [/Dxxxxxxxx [/Myyyyyyyy] [/Ffilename]]
  256.  
  257.   xxxxxxxx is a hex string each bit of which can be used to control
  258.            the sending of trace messages
  259.  
  260.   yyyyyyyy is a hex string each bit of which indicates if a control
  261.            message should be displayed in a MessageBox
  262.  
  263.   filename trace file name
  264.  
  265. >>DebugOutOutputIf
  266. ------------------ SABDU001.DLL API: DebugOutOutputIf ----------------
  267.  
  268. VOID       FAR PASCAL CEXPORT DebugOutOutputIf (
  269.                                                 unsigned long ulDFlag,
  270.                                                 LPCSTR lpczText,
  271.                                                 LPCSTR lpczTitle,
  272.                                                 UINT nMFlags
  273.                                                ) ;
  274.  
  275.   ulDFlag is matched with /D and /M from command line to determine if
  276.   message should be output to trace or displayed in a MessageBox.
  277.  
  278.   lpczText  pointer to text of trace message
  279.   lpczTitle pointer to title of trace message
  280.   nMFlags   MessageBox flags
  281.  
  282. >>DebugOutczDebugBuffer
  283. ------------------ SABDU001.DLL API: DebugOutczDebugBuffer -----------
  284.  
  285. char far * FAR PASCAL CEXPORT DebugOutczDebugBuffer (
  286.                                                      VOID
  287.                                                     ) ;
  288.  
  289.   Returns pointer to debug buffer that can be used to format messages.
  290.  
  291. >>DebugOutDebugFlags
  292. ------------------ SABDU001.DLL API: DebugOutczDebugBuffer -----------
  293.  
  294. char far * FAR PASCAL CEXPORT DebugOutDebugFlags (
  295.                                                   VOID
  296.                                                  ) ;
  297.  
  298.   Returns debug flags.
  299.  
  300. >>DiskDrive
  301. ------------------ SABDU001.DLL API: DiskDrive objects ---------------
  302.  
  303.  A DiskDrive is a wrapper that encapsolates a virtual (VDrive) object
  304.  and provides all of the functions needed to manipulate it
  305.  
  306.  The following functions are available to manipulate it:
  307.      DiskDriveCompare              Compares two DiskDrive objects
  308.      DiskDriveCopy                 Copies a DiskDrive object
  309.      DiskDriveCreateDrive          Creates a DiskDrive object
  310.      DiskDriveCreateFile           Creates a DiskDrive object
  311.      DiskDriveCreateMemory         Creates a DiskDrive object
  312.      DiskDriveCreateVDrive         Creates a DiskDrive object
  313.      DiskDriveDelete               Deletes a DiskDrive object
  314.      DiskDriveForceReset           Forces a reset of the assocated VDrive
  315.      DiskDriveFormat               Formats a DiskDrive object
  316.      DiskDriveFormatTrack          Formats a track
  317.      DiskDriveGetVolumeSerial      Gets the volume serial
  318.      DiskDriveHasData              Returns TRUE if object valid
  319.      DiskDriveIsTruncated          Returns TRUE if object is truncated
  320.      DiskDriveLetter               Returns DiskDrive object letter
  321.      DiskDriveReadSectors          Reads a group of sectors from DiskDrive
  322.      DiskDriveReset                Resets the associated VDrive if used
  323.      DiskDriveSetRead              Sets the associated VDrive for reading
  324.      DiskDriveSetType              Sets the type (density) of VDrive
  325.      DiskDriveSetVolumeSerial      Sets the volume serial
  326.      DiskDriveSetWrite             Sets the associated VDrive for writing
  327.      DiskDriveSetWriteFormatOption Turns on/off WriteFormatOption
  328.      DiskDriveSetWriteVerifyOption Turns on/off WriteVerifyOption
  329.      DiskDriveTruncate             Sets truncation mode on
  330.      DiskDriveTruncateReverse      Sets truncation mode off
  331.      DiskDriveType                 Returns type (density)
  332.      DiskDriveUsedCylinders        Returns cylinders used
  333.      DiskDriveUsedHeads            Returns heads used
  334.      DiskDriveUsedSectorSize       Returns sector size
  335.      DiskDriveUsedSectors          Returns sectors used
  336.      DiskDriveWriteBootSector      Writes boot sector of DiskDrive
  337.      DiskDriveWriteSectors         Writes a group of sectors to DiskDrive
  338. >>DiskDriveCreateDrive
  339. ------------------ SABDU001.DLL API: DiskDriveCreateDrive ------------
  340.  
  341.  UINT FAR PASCAL DiskDriveCreateDrive (
  342.                                        char cDrive
  343.                                        UINT nType,
  344.                                        UINT nCylinders,
  345.                                        lpfnHANDLESTATUS lpfnNewHandleStatus
  346.                                       )
  347.  
  348.       nType = FD0360
  349.               FD0720
  350.               FD1200
  351.               FD1200H
  352.               FD1440
  353.               FD1440H
  354.               FD2880
  355.  
  356.       lpfnNewHandleStatus points to a callback routine that handles event
  357.       notifications including errors.
  358.  
  359.   Creates a DiskDrive object using a physical drive as the base for the
  360.   VDrive object within it.
  361.  
  362.   Returns pointer to DiskDrive object.
  363.  
  364.   Example:
  365.          VOID far *pDiskDriveA ;
  366.  
  367.          FARPROC lpfnNewHandleStatus ;
  368.  
  369.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  370.                                                   NewHandleStatus ) ;
  371.  
  372.          pDiskDriveA = DiskDriveCreateDrive (
  373.                                              'A',
  374.                                              FD1200,
  375.                                              80,
  376.                                              lpfnNewHandleStatus
  377.                                             )
  378. >>DiskDriveCreateMemory
  379. ------------------ SABDU001.DLL API: DiskDriveCreateMemory -----------
  380.  
  381.  UINT FAR PASCAL DiskDriveCreateMemory (
  382.                                         UINT nMemory
  383.                                         UINT nType,
  384.                                         UINT nCylinders,
  385.                                         lpfnHANDLESTATUS lpfnNewHandleStatus
  386.                                        )
  387.  
  388.       nType = FD0360
  389.               FD0720
  390.               FD1200
  391.               FD1200H
  392.               FD1440
  393.               FD1440H
  394.               FD2880
  395.  
  396.       lpfnNewHandleStatus points to a callback routine that handles event
  397.       notifications including errors.
  398.  
  399.   Creates a DiskDrive object using a memory object as the base for the
  400.   VDrive object within it.
  401.  
  402.   Returns pointer to DiskDrive object.
  403.  
  404.   Example:
  405.          VOID far *pDiskDriveA ;
  406.  
  407.          FARPROC lpfnNewHandleStatus ;
  408.  
  409.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  410.                                                   NewHandleStatus ) ;
  411.  
  412.          pDiskDriveA = DiskDriveCreateMemory (
  413.                                               1,
  414.                                               FD1200,
  415.                                               80,
  416.                                               lpfnNewHandleStatus
  417.                                              )
  418. >>DiskDriveCreateFile
  419. ------------------ SABDU001.DLL API: DiskDriveCreateFile -------------
  420.  
  421.  UINT FAR PASCAL DiskDriveCreateFile (
  422.                                       LPCSTR lpczFileName,
  423.                                       LPCSTR lpczApplicationTitle,
  424.                                       LPCSTR lpczVersion,
  425.                                       UINT nType,
  426.                                       UINT nCylinders,
  427.                                       lpfnHANDLESTATUS lpfnNewHandleStatus
  428.                                      )
  429.  
  430.       nType = FD0360
  431.               FD0720
  432.               FD1200
  433.               FD1200H
  434.               FD1440
  435.               FD1440H
  436.               FD2880
  437.  
  438.       lpfnNewHandleStatus points to a callback routine that handles event
  439.       notifications including errors.
  440.  
  441.   Creates a DiskDrive object using a file object as the base for the
  442.   VDrive object within it.
  443.  
  444.   Returns pointer to DiskDrive object.
  445.  
  446.   Example:
  447.          VOID far *pDiskDriveA ;
  448.  
  449.          FARPROC lpfnNewHandleStatus ;
  450.  
  451.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  452.                                                   NewHandleStatus ) ;
  453.  
  454.          pDiskDriveA = DiskDriveCreateFile (
  455.                                             "FileName.SD",
  456.                                             "SAB Diskette Utility",
  457.                                             "2.00",
  458.                                             FD1200,
  459.                                             80,
  460.                                             lpfnNewHandleStatus
  461.                                            )
  462. >>DiskDriveCreateVDrive
  463. ------------------ SABDU001.DLL API: DiskDriveCreateVDrive -----------
  464.  
  465.  UINT FAR PASCAL DiskDriveCreateVDrive (
  466.                                         VOID far * pVDrive,
  467.                                         UINT nType,
  468.                                         UINT nCylinders,
  469.                                         lpfnHANDLESTATUS lpfnNewHandleStatus
  470.                                        )
  471.  
  472.       nType = FD0360
  473.               FD0720
  474.               FD1200
  475.               FD1200H
  476.               FD1440
  477.               FD1440H
  478.               FD2880
  479.  
  480.       lpfnNewHandleStatus points to a callback routine that handles event
  481.       notifications including errors.
  482.  
  483.   Creates a DiskDrive object using a virtual drive object as the
  484.   base for the VDrive object within it.
  485.  
  486.   Returns pointer to DiskDrive object.
  487.  
  488.   Example:
  489.          VOID far *pDiskDriveA ;
  490.          VOID far *pVDriveA ;
  491.  
  492.          FARPROC lpfnNewHandleStatus ;
  493.  
  494.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  495.                                                   NewHandleStatus ) ;
  496.          pVDriveA = DDriveDrive ( 'A' ) ;
  497.  
  498.          pDiskDriveA = DiskDriveCreateVDrive (
  499.                                               pVDriveA,
  500.                                               FD1200,
  501.                                               80,
  502.                                               lpfnNewHandleStatus
  503.                                              )
  504. >>DiskDriveDelete
  505. ------------------ SABDU001.DLL API: DiskDriveDelete -----------------
  506.  
  507.  UINT FAR PASCAL DiskDriveDelete (
  508.                                   VOID far * pCDrive,
  509.                                  )
  510.  
  511.   Deletes a DiskDrive object.
  512.  
  513.   Example:
  514.          VOID far *pDiskDriveA ;
  515.          VOID far *pVDriveA ;
  516.  
  517.          FARPROC lpfnNewHandleStatus ;
  518.  
  519.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  520.                                                   NewHandleStatus ) ;
  521.          pVDriveA = DDriveDrive ( 'A' ) ;
  522.  
  523.          pDiskDriveA = DiskDriveCreateVDrive ( pVDriveA )
  524.  
  525.          ...
  526.  
  527.          DiskDriveDelete ( pDiskDriveA ) ;
  528.          pDiskDriveA = NULL ;
  529.  
  530. >>DiskDriveCopy
  531. ------------------ SABDU001.DLL API: DiskDriveCopy -------------------
  532.  
  533.  UINT FAR PASCAL DiskDriveCopy (
  534.                                 VOID far * pDiskDriveTarget,
  535.                                 VOID far * pDiskDriveSource
  536.                                )
  537.  
  538.   Copies a DiskDrive object ;
  539.  
  540.   Example:
  541.          VOID far *pDiskDriveA ;
  542.          VOID far *pDiskDriveB ;
  543.  
  544.          FARPROC lpfnNewHandleStatus ;
  545.  
  546.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  547.                                                   NewHandleStatus ) ;
  548.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  549.                                               lpfnNewHandleStatus ) ;
  550.          pDiskDriveB = DiskDriveCreateDrive ( 'B',
  551.                                               DiskDriveType( pDiskDriveA ),
  552.                                               0, lpfnNewHandleStatus ) ;
  553.          DiskDriveCopy ( pDiskDriveB, pDiskDriveA ) ;
  554. >>DiskDriveCompare
  555. ------------------ SABDU001.DLL API: DiskDriveCompare ----------------
  556.  
  557.  UINT FAR PASCAL DiskDriveCompare (
  558.                                    VOID far * pDiskDriveTarget,
  559.                                    VOID far * pDiskDriveSource
  560.                                   )
  561.  
  562.   Compares two DiskDrive objects.
  563.  
  564.   Returns TRUE if they are the same.
  565.  
  566.   Example:
  567.          VOID far *pDiskDriveA ;
  568.          VOID far *pDiskDriveB ;
  569.  
  570.          FARPROC lpfnNewHandleStatus ;
  571.  
  572.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  573.                                                   NewHandleStatus ) ;
  574.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  575.                                               lpfnNewHandleStatus ) ;
  576.          pDiskDriveB = DiskDriveCreateDrive ( 'B',
  577.                                               DiskDriveType( pDiskDriveA ),
  578.                                               0, lpfnNewHandleStatus ) ;
  579.          DiskDriveCompare ( pDiskDriveB, pDiskDriveA ) ;
  580. >>DiskDriveFormatTrack
  581. ------------------ SABDU001.DLL API: DiskDriveFormatTrack ------------
  582.  
  583.  UINT FAR PASCAL DiskDriveFormatTrack (
  584.                                        VOID far * pDiskDrive,
  585.                                        UINT nCylinder,
  586.                                        UINT nHead,
  587.                                        lpfnHANDLESTATUS lpfnHandleStatus
  588.                                       )
  589.  
  590.   Formats a track.
  591.  
  592.   Returns FALSE if successfull
  593.  
  594.   Example:
  595.          VOID far *pDiskDriveA ;
  596.  
  597.          FARPROC lpfnNewHandleStatus ;
  598.  
  599.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  600.                                                   NewHandleStatus ) ;
  601.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1200, 80,
  602.                                               lpfnNewHandleStatus ) ;
  603.          DiskDriveFormatTrack ( pDiskDriveB, 0, 1,
  604.                                 lpfnNewHandleStatus ) ;
  605. >>DiskDriveReadSectors
  606. ------------------ SABDU001.DLL API: DiskDriveReadSectors ------------
  607.  
  608.  UINT FAR PASCAL DiskDriveReadSectors (
  609.                                        VOID far * pDiskDrive,
  610.                                        UINT nCylinder,
  611.                                        UINT nHead,
  612.                                        UINT nSector,
  613.                                        UINT nCount,
  614.                                        LPBYTE lpbyBuffer,
  615.                                        lpfnHANDLESTATUS lpfnHandleStatus
  616.                                       )
  617.  
  618.   Reads a group of sectors.
  619.  
  620.   Returns FALSE if successfull
  621.  
  622.   Example:
  623.          VOID far *pDiskDriveA ;
  624.  
  625.          FARPROC lpfnNewHandleStatus ;
  626.  
  627.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  628.                                                   NewHandleStatus ) ;
  629.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  630.                                               lpfnNewHandleStatus ) ;
  631.          DiskDriveReadSectors ( pDiskDriveA, 0, 1, 0, 18,
  632.                                 lpfnNewHandleStatus ) ;
  633. >>DiskDriveWriteSectors
  634. ------------------ SABDU001.DLL API: DiskDriveWriteSectors -----------
  635.  
  636.  UINT FAR PASCAL DiskDriveWriteSectors (
  637.                                         VOID far * pDiskDrive,
  638.                                         UINT nCylinder,
  639.                                         UINT nHead,
  640.                                         UINT nSector,
  641.                                         UINT nCount,
  642.                                         LPBYTE lpbyBuffer,
  643.                                         lpfnHANDLESTATUS lpfnHandleStatus
  644.                                        )
  645.  
  646.   Writes a group of sectors.
  647.  
  648.   Returns FALSE if successfull
  649.  
  650.   Example:
  651.          VOID far *pDiskDriveA ;
  652.  
  653.          FARPROC lpfnNewHandleStatus ;
  654.  
  655.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  656.                                                   NewHandleStatus ) ;
  657.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  658.                                               lpfnNewHandleStatus ) ;
  659.          DiskDriveWriteSectors ( pDiskDriveA, 0, 1, 0, 18,
  660.                                  lpfnNewHandleStatus ) ;
  661. >>DiskDriveLetter
  662. ------------------ SABDU001.DLL API: DiskDriveWriteLetter ------------
  663.  
  664.  UINT FAR PASCAL DiskDriveLetter (
  665.                                   VOID far * pDiskDrive,
  666.                                  )
  667.  
  668.   Returns letter of virtual drive.
  669.  
  670.   Example:
  671.          VOID far *pDiskDriveA ;
  672.  
  673.          char cDriveLetter ;
  674.  
  675.          FARPROC lpfnNewHandleStatus ;
  676.  
  677.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  678.                                                   NewHandleStatus ) ;
  679.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  680.                                               lpfnNewHandleStatus ) ;
  681.          ...
  682.          cDriveLetter = DiskDriveLetter ( pDiskDriveA ) ;
  683. >>DiskDriveSetRead
  684. ------------------ SABDU001.DLL API: DiskDriveSetRead ---------------
  685.  
  686.  UINT FAR PASCAL DiskDriveSetRead (
  687.                                    VOID far * pDiskDrive,
  688.                                    UINT nTempType,
  689.                                    UINT nCylinders
  690.                                   )
  691.  
  692.   Sets contained virtual drive for reading.
  693.  
  694.   Example:
  695.          VOID far *pDiskDriveA ;
  696.  
  697.          char cDriveLetter ;
  698.  
  699.          FARPROC lpfnNewHandleStatus ;
  700.  
  701.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  702.                                                   NewHandleStatus ) ;
  703.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  704.                                               lpfnNewHandleStatus ) ;
  705.          ...
  706.          DiskDriveSetRead ( pDiskDriveA, nTempType, nCylinders ) ;
  707. >>DiskDriveSetWrite
  708. ------------------ SABDU001.DLL API: DiskDriveSetWrite---------------
  709.  
  710.  UINT FAR PASCAL DiskDriveSetWrite (
  711.                                     VOID far * pDiskDrive,
  712.                                     UINT nTempType,
  713.                                     UINT nCylinders
  714.                                    )
  715.  
  716.   Sets contained virtual drive for writing.
  717.  
  718.   Example:
  719.          VOID far *pDiskDriveA ;
  720.  
  721.          char cDriveLetter ;
  722.  
  723.          FARPROC lpfnNewHandleStatus  ;
  724.  
  725.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  726.                                                   NewHandleStatus ) ;
  727.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  728.                                               lpfnNewHandleStatus ) ;
  729.          ...
  730.          DiskDriveSetWrite ( pDiskDriveA, nTempType, nCylinders ) ;
  731. >>DiskDriveSetWriteFormatOption
  732. ------------------ SABDU001.DLL API: DiskDriveSetWriteFormatOption --
  733.  
  734.  UINT FAR PASCAL DiskDriveSetWriteFormatOption (
  735.                                                 VOID far * pDiskDrive,
  736.                                                 UINT nWriteFormatOptionNew
  737.                                                )
  738.  
  739.   nWriteFormatOptionNew
  740.       1                 AUTOMATIC
  741.       2                 ALWAYS
  742.       3                 NEVER
  743.       4                 FAST
  744.  
  745.   Sets write format option.
  746.  
  747.   Example:
  748.          VOID far *pDiskDriveA ;
  749.  
  750.          char cDriveLetter ;
  751.  
  752.          FARPROC lpfnNewHandleStatus ;
  753.  
  754.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  755.                                                   NewHandleStatus ) ;
  756.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  757.                                               lpfnNewHandleStatus ) ;
  758.          ...
  759.          DiskDriveSetWriteFormatOption ( pDiskDriveA, AUTOMATIC ) ;
  760. >>DiskDriveSetWriteVerifyOption
  761. ------------------ SABDU001.DLL API: DiskDriveSetWriteVerifyOption --
  762.  
  763.  UINT FAR PASCAL DiskDriveSetWriteVerifyOption (
  764.                                                 VOID far * pDiskDrive,
  765.                                                 BOOL bWriteVerifyOptionNew
  766.                                                )
  767.  
  768.   Sets write verify option.
  769.  
  770.   Example:
  771.          VOID far *pDiskDriveA ;
  772.  
  773.          char cDriveLetter ;
  774.  
  775.          FARPROC lpfnNewHandleStatus ;
  776.  
  777.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  778.                                                   NewHandleStatus ) ;
  779.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  780.                                               lpfnNewHandleStatus ) ;
  781.          ...
  782.          DiskDriveSetWriteVerifyOption ( pDiskDriveA, TRUE ) ;
  783. >>DiskDriveReset
  784. ------------------ SABDU001.DLL API: DiskDriveReset ------------------
  785.  
  786.  UINT FAR PASCAL DiskDriveReset (
  787.                                  VOID far * pDiskDrive
  788.                                 )
  789.  
  790.   Resets virtual drive
  791.  
  792.   Example:
  793.          VOID far *pDiskDriveA ;
  794.  
  795.          char cDriveLetter ;
  796.  
  797.          FARPROC lpfnNewHandleStatus ;
  798.  
  799.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  800.                                                   NewHandleStatus ) ;
  801.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  802.                                               lpfnNewHandleStatus ) ;
  803.          ...
  804.          DiskDriveReset ( pDiskDriveA ) ;
  805. >>DiskDriveForceReset
  806. ------------------ SABDU001.DLL API: DiskDriveForceReset -------------
  807.  
  808.  UINT FAR PASCAL DiskDriveForceReset (
  809.                                       VOID far * pDiskDrive
  810.                                      )
  811.  
  812.   Forces reset of virtual drive
  813.  
  814.   Example:
  815.          VOID far *pDiskDriveA ;
  816.  
  817.          char cDriveLetter ;
  818.  
  819.          FARPROC lpfnNewHandleStatus ;
  820.  
  821.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  822.                                                   NewHandleStatus ) ;
  823.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  824.                                               lpfnNewHandleStatus ) ;
  825.          ...
  826.          DiskDriveForceReset ( pDiskDriveA ) ;
  827. >>DiskDriveType
  828. ------------------ SABDU001.DLL API: DiskDriveType -------------------
  829.  
  830.  UINT FAR PASCAL DiskDriveType (
  831.                                 VOID far * pDiskDrive
  832.                                )
  833.  
  834.   Returns type ( density ).
  835.  
  836.   Example:
  837.          VOID far *pDiskDriveA ;
  838.  
  839.          char cDriveLetter ;
  840.  
  841.          FARPROC lpfnNewHandleStatus ;
  842.  
  843.          UINT nType ;
  844.  
  845.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  846.                                                   NewHandleStatus ) ;
  847.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  848.                                               lpfnNewHandleStatus ) ;
  849.          ...
  850.          nType = DiskDriveType ( pDiskDriveA ) ;
  851. >>DiskDriveHasData
  852. ------------------ SABDU001.DLL API: DiskDriveHasData ----------------
  853.  
  854.  UINT FAR PASCAL DiskDriveHasData (
  855.                                    VOID far * pDiskDrive
  856.                                   )
  857.  
  858.   Returns TRUE if DiskDrive is valid object.
  859.  
  860.   Example:
  861.          VOID far *pDiskDriveA ;
  862.  
  863.          FARPROC lpfnNewHandleStatus ;
  864.  
  865.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  866.                                                   NewHandleStatus ) ;
  867.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  868.                                               lpfnNewHandleStatus ) ;
  869.          ...
  870.          if ( DiskDriveHasData ( pDiskDriveA ) ) ...;
  871. >>DiskDriveIsTruncated
  872. ------------------ SABDU001.DLL API: DiskDriveIsTruncated ------------
  873.  
  874.  UINT FAR PASCAL DiskDriveIsTruncated (
  875.                                        VOID far * pDiskDrive
  876.                                       )
  877.  
  878.   Returns TRUE if DiskDrive is truncated.
  879.  
  880.   Example:
  881.          VOID far *pDiskDriveA ;
  882.  
  883.          FARPROC lpfnNewHandleStatus ;
  884.  
  885.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  886.                                                   NewHandleStatus ) ;
  887.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  888.                                               lpfnNewHandleStatus ) ;
  889.          ...
  890.          if ( DiskDriveIsTruncated ( pDiskDriveA ) ) ...;
  891. >>DiskDriveFormat
  892. ------------------ SABDU001.DLL API: DiskDriveFormat -----------------
  893.  
  894.  UINT FAR PASCAL DiskDriveFormat (
  895.                                   VOID far * pDiskDrive,
  896.                                   LPCSTR lpczVolumeSerial,
  897.                                   UNIT nFormatOption,
  898.                                   LPBYTE lpbyBootSector,
  899.                                   lpfnHANDLESTATUS lpfnHandleStatus
  900.                                  )
  901.  
  902.   Returns FALSE if successfull.
  903.  
  904.   Example:
  905.          VOID far *pDiskDriveA ;
  906.  
  907.          char cDriveLetter ;
  908.  
  909.          FARPROC lpfnNewHandleStatus ;
  910.  
  911.          UINT nType ;
  912.  
  913.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  914.                                                   NewHandleStatus ) ;
  915.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  916.                                               lpfnNewHandleStatus ) ;
  917.          ...
  918.          DiskDriveFormat ( pDiskDriveA, "VOL 1", FORMATFAST, NULL, NULL ) ;
  919. >>DiskDriveSetType
  920. ------------------ SABDU001.DLL API: DiskDriveSetType ----------------
  921.  
  922.  UINT FAR PASCAL DiskDriveSetType (
  923.                                    VOID far * pDiskDrive,
  924.                                    UINT nNewType
  925.                                   )
  926.  
  927.   Example:
  928.          VOID far *pDiskDriveA ;
  929.  
  930.          char cDriveLetter ;
  931.  
  932.          FARPROC lpfnNewHandleStatus ;
  933.  
  934.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  935.                                                   NewHandleStatus ) ;
  936.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  937.                                               lpfnNewHandleStatus ) ;
  938.          ...
  939.          DiskDriveSetType ( pDiskDriveA, FD1200 ) ;
  940. >>DiskDriveUsedCylinders
  941. ------------------ SABDU001.DLL API: DiskDriveUsedCylinders ----------
  942.  
  943.  UINT FAR PASCAL DiskDriveUsedCylinders (
  944.                                          VOID far * pDiskDrive
  945.                                          )
  946.  
  947.   Returns number of cylinders.
  948.  
  949.   Example:
  950.          VOID far *pDiskDriveA ;
  951.  
  952.          char cDriveLetter ;
  953.  
  954.          FARPROC lpfnNewHandleStatus ;
  955.  
  956.          UINT nCylinder ;
  957.  
  958.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  959.                                                   NewHandleStatus ) ;
  960.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  961.                                               lpfnNewHandleStatus ) ;
  962.          ...
  963.          nCylinder = DiskDriveUsedCylinders ( pDiskDriveA ) ;
  964. >>DiskDriveUsedHeads
  965. ------------------ SABDU001.DLL API: DiskDriveHeads ------------------
  966.  
  967.  UINT FAR PASCAL DiskDriveUsedHeads (
  968.                                      VOID far * pDiskDrive
  969.                                     )
  970.  
  971.   Returns number of heads.
  972.  
  973.   Example:
  974.          VOID far *pDiskDriveA ;
  975.  
  976.          char cDriveLetter ;
  977.  
  978.          FARPROC lpfnNewHandleStatus ;
  979.  
  980.          UINT nHeads ;
  981.  
  982.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  983.                                                   NewHandleStatus ) ;
  984.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  985.                                               lpfnNewHandleStatus ) ;
  986.          ...
  987.          nHeads = DiskDriveUsedHeads ( pDiskDriveA ) ;
  988. >>DiskDriveUsedSectors
  989. ------------------ SABDU001.DLL API: DiskDriveUsedSectors ------------
  990.  
  991.  UINT FAR PASCAL DiskDriveUsedSectors (
  992.                                        VOID far * pDiskDrive
  993.                                       )
  994.  
  995.   Returns number of sectors in a track.
  996.  
  997.   Example:
  998.          VOID far *pDiskDriveA ;
  999.  
  1000.          char cDriveLetter ;
  1001.  
  1002.          FARPROC lpfnNewHandleStatus ;
  1003.  
  1004.          UINT nSectors ;
  1005.  
  1006.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1007.                                                   NewHandleStatus ) ;
  1008.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1009.                                               lpfnNewHandleStatus ) ;
  1010.          ...
  1011.          nSectors = DiskDriveUsedSectors ( pDiskDriveA ) ;
  1012. >>DiskDriveUsedSectorSize
  1013. ------------------ SABDU001.DLL API: DiskDriveUsedSectorSize----------
  1014.  
  1015.  UINT FAR PASCAL DiskDriveUsedSectorSize (
  1016.                                           VOID far * pDiskDrive
  1017.                                          )
  1018.  
  1019.   Returns sector size.
  1020.  
  1021.   Example:
  1022.          VOID far *pDiskDriveA ;
  1023.  
  1024.          LPSTR *lpczOldVolumeSerial ;
  1025.  
  1026.          FARPROC lpfnNewHandleStatus ;
  1027.  
  1028.          UINT nSectorSize ;
  1029.  
  1030.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1031.                                                   NewHandleStatus ) ;
  1032.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1033.                                               lpfnNewHandleStatus ) ;
  1034.          ...
  1035.          nSectorSize = DiskDriveUsedSectorSize ( pDiskDriveA ) ;
  1036. >>DiskDriveGetVolumeSerial
  1037. ------------------ SABDU001.DLL API: DiskDriveGetVolumeSerial --------
  1038.  
  1039.  UINT FAR PASCAL DiskDriveGetVolumeSerial (
  1040.                                            VOID far * pDiskDrive,
  1041.                                            LPSTR lpczOldVolumeSerial
  1042.                                           )
  1043.  
  1044.   Example:
  1045.          VOID far *pDiskDriveA ;
  1046.  
  1047.          char cDriveLetter ;
  1048.  
  1049.          FARPROC lpfnNewHandleStatus ;
  1050.  
  1051.          UINT nType ;
  1052.  
  1053.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1054.                                                   NewHandleStatus ) ;
  1055.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1056.                                               lpfnNewHandleStatus ) ;
  1057.          ...
  1058.          DiskDriveGetVolumeSerial ( pDiskDriveA, lpczOldVolumeSerial ) ;
  1059. >>DiskDriveSetVolumeSerial
  1060. ------------------ SABDU001.DLL API: DiskDriveSetVolumeSerial --------
  1061.  
  1062.  UINT FAR PASCAL DiskDriveSetVolumeSerial (
  1063.                                            VOID far * pDiskDrive,
  1064.                                            LPSTR lpczNewVolumeSerial
  1065.                                           )
  1066.  
  1067.   Returns FALSE if successfull.
  1068.  
  1069.   Example:
  1070.          VOID far *pDiskDriveA ;
  1071.  
  1072.          FARPROC lpfnNewHandleStatus ;
  1073.  
  1074.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1075.                                                   NewHandleStatus ) ;
  1076.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1077.                                               lpfnNewHandleStatus ) ;
  1078.          ...
  1079.          DiskDriveSetVolumeSerial ( pDiskDriveA, "Vol 1" ) ;
  1080. >>DiskDriveTruncate
  1081. ------------------ SABDU001.DLL API: DiskDriveTruncate ---------------
  1082.  
  1083.  UINT FAR PASCAL DiskDriveTruncate (
  1084.                                     VOID far * pDiskDrive
  1085.                                    )
  1086.  
  1087.   Turns on truncation.
  1088.  
  1089.   Example:
  1090.          VOID far *pDiskDriveA ;
  1091.  
  1092.          FARPROC lpfnNewHandleStatus ;
  1093.  
  1094.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1095.                                                   NewHandleStatus ) ;
  1096.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1097.                                               lpfnNewHandleStatus ) ;
  1098.          ...
  1099.          DiskDriveTypeTruncate ( pDiskDriveA ) ;
  1100. >>DiskDriveTruncateRevers
  1101. ------------------ SABDU001.DLL API: DiskDriveTruncateReverse --------
  1102.  
  1103.  UINT FAR PASCAL DiskDriveTruncateReverse (
  1104.                                            VOID far * pDiskDrive
  1105.                                           )
  1106.  
  1107.   Turns off truncation.
  1108.  
  1109.   Example:
  1110.          VOID far *pDiskDriveA ;
  1111.  
  1112.          FARPROC lpfnNewHandleStatus ;
  1113.  
  1114.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1115.                                                   NewHandleStatus ) ;
  1116.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1117.                                               lpfnNewHandleStatus ) ;
  1118.          ...
  1119.          DiskDriveTruncateReverse ( pDiskDriveA ) ;
  1120. >>DiskDriveWriteBootSector
  1121. ------------------ SABDU001.DLL API: DiskDriveWriteBootSector --------
  1122.  
  1123.  UINT FAR PASCAL DiskDriveWriteBootSector (
  1124.                                            VOID far * pDiskDrive,
  1125.                                            lpbyModelBootSector,
  1126.                                lpfnHANDLESTATUS lpfnNewHandleStatus
  1127.                               )
  1128.  
  1129.   Returns false if successfull.
  1130.  
  1131.   Example:
  1132.          VOID far *pDiskDriveA ;
  1133.  
  1134.          FARPROC lpfnNewHandleStatus ;
  1135.  
  1136.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1137.                                                   NewHandleStatus ) ;
  1138.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1139.                                               lpfnNewHandleStatus ) ;
  1140.          ...
  1141.          DiskDriveTypeWriteBootSector ( pDiskDriveA, NULL, NULL ) ;
  1142. >>FDrive
  1143. ------------------ SABDU001.DLL API: FDrive objects ------------------
  1144.  
  1145.  A FDrive (File Drive) is a specialized version of the VDrive
  1146.  (Virtual Drive).  It is an object that represents a diskette image
  1147.  file.
  1148.  
  1149.  The following functions are available to manipulate it:
  1150.      FDriveCreate        Creates a FDrive object
  1151.      FDriveDelete        Deletes a FDrive object
  1152.      FDriveForceReset    Issues a reset to the drive
  1153.      FDriveFormatTrack   Formats a track
  1154.      FDriveReadSectors   Reads a group of sectors from the drive
  1155.      FDriveReset         Issues a reset to the drive if it was used
  1156.      FDriveSetRead       Sets up for reading from the drive
  1157.      FDriveSetWrite      Sets up for writing to the drive
  1158.      FDriveWriteSectors  Writes a group of sectors to the drive
  1159. >>FDriveCreate
  1160. ------------------ SABDU001.DLL API: FDriveCreate --------------------
  1161.  
  1162.  VOID far * FAR PASCAL FDriveCreate (
  1163.                                      LPCSTR lpczFileName,
  1164.                                      LPCSTR lpczApplicationTitle,
  1165.                                      LPCSTR lpczVersion,
  1166.                                      lpfnHANDLESTATUS lpfnNewHandleStatus
  1167.                                     )
  1168.  
  1169.  Creates a FDrive object associated with drive cDrive and returns a
  1170.  pointer to it.
  1171.  
  1172.  lpfnNewHandleStatus points to a callback routine that handles event
  1173.  notifications including errors.
  1174.  
  1175.  Example:
  1176.          VOID far *pDriveA ;
  1177.  
  1178.          pDrive = FDriveCreate (
  1179.                                 "MyFileName",
  1180.                                 "SAB Diskette Utility",
  1181.                                 "2.10",
  1182.                                 lpfnHandleStatus
  1183.                                ) ;
  1184. >>FDriveDelete
  1185. ------------------ SABDU001.DLL API: FDriveDelete --------------------
  1186.  
  1187.  VOID       FAR PASCAL FDriveDelete (
  1188.                                      pFDrive
  1189.                                     )
  1190.  
  1191.  Deletes the FDrive object pointed to by pFDrive.
  1192.  
  1193.  Example:
  1194.          VOID far *pDriveA ;
  1195.  
  1196.          pDrive = FDriveCreate (
  1197.                                 "MyFileName",
  1198.                                 "SAB Diskette Utility",
  1199.                                 "2.10"
  1200.                                ) ;
  1201.          ...
  1202.          FDriveDelete ( pDrive ) ;
  1203.          pDrive = NULL ;
  1204. >>FDriveSetRead
  1205. ------------------ SABDU001.DLL API: FDriveSetRead -------------------
  1206.  
  1207.  UINT       FAR PASCAL FDriveSetRead (
  1208.                                       VOID far *pFDrive,
  1209.                                       UINT nTempType,
  1210.                                       UINT nCylinders
  1211.                                      )
  1212.  
  1213.  Prepares the FDrive object pointed to by pFDrive for reading.
  1214.  
  1215.  nTempType defines the type of diskette expected:
  1216.            FD0360 FD0720 FD1200 FD1440 FD2880
  1217.  
  1218.  nCylinders defines the number of cylinders.
  1219.  
  1220.  Example:
  1221.          VOID far *pDriveA ;
  1222.  
  1223.          pDrive = FDriveCreate (
  1224.                                 "MyFileName",
  1225.                                 "SAB Diskette Utility",
  1226.                                 "2.10"
  1227.                                ) ;
  1228.          ...
  1229.          FDriveSetRead ( pDrive, FD0360, NULL ) ;
  1230. >>FDriveSetWrite
  1231. ------------------ SABDU001.DLL API: FDriveSetWrite ------------------
  1232.  
  1233.  UINT       FAR PASCAL FDriveSetWrite (
  1234.                                        VOID far *pFDrive,
  1235.                                        UINT nTempType,
  1236.                                        UINT nCylinders
  1237.                                       )
  1238.  
  1239.  Prepares the FDrive object pointed to by pFDrive for writing.
  1240.  
  1241.  nTempType defines the type of diskette expected:
  1242.            FD0360 FD0720 FD1200 FD1440 FD2880
  1243.  
  1244.  nCylinders defines the number of cylinders.
  1245.  
  1246.  Example:
  1247.          VOID far *pDriveA ;
  1248.  
  1249.          pDrive = FDriveCreate (
  1250.                                 "MyFileName",
  1251.                                 "SAB Diskette Utility",
  1252.                                 "2.10"
  1253.                                ) ;
  1254.          ...
  1255.          FDriveSetWrite ( pDrive, FD0360, NULL ) ;
  1256. >>FDriveReset
  1257. ------------------ SABDU001.DLL API: FDriveReset ---------------------
  1258.  
  1259.  UINT       FAR PASCAL FDriveReset (
  1260.                                     VOID far *pFDrive
  1261.                                    )
  1262.  
  1263.  Resets the FDrive object pointed to by pFDrive.
  1264.  
  1265.  Example:
  1266.          VOID far *pDriveA ;
  1267.  
  1268.          pDrive = FDriveCreate (
  1269.                                 "MyFileName",
  1270.                                 "SAB Diskette Utility",
  1271.                                 "2.10"
  1272.                                ) ;
  1273.          ...
  1274.          FDriveReset ( pDrive ) ;
  1275. >>FDriveForceReset
  1276. ------------------ SABDU001.DLL API: FDriveForceReset ----------------
  1277.  
  1278.  UINT       FAR PASCAL FDriveForceReset (
  1279.                                          VOID far *pFDrive
  1280.                                         )
  1281.  
  1282.  Resets the FDrive object pointed to by pFDrive.
  1283.  
  1284.  Example:
  1285.          VOID far *pDriveA ;
  1286.  
  1287.          pDrive = FDriveCreate (
  1288.                                 "MyFileName",
  1289.                                 "SAB Diskette Utility",
  1290.                                 "2.10"
  1291.                                ) ;
  1292.          ...
  1293.          FDriveForceReset ( pDrive ) ;
  1294. >>FDriveFormatTrack
  1295. ------------------ SABDU001.DLL API: FDriveFormatTrack ---------------
  1296.  
  1297.  UINT       FAR PASCAL FDriveForceReset (
  1298.                                          VOID far *pFDrive,
  1299.                                          UNIT nCylinder,
  1300.                                          UNIT nHead
  1301.                                         )
  1302.  
  1303.  Formats the track pointed to by FDrive object pointer
  1304.  
  1305.  Example:
  1306.          VOID far *pDriveA ;
  1307.  
  1308.          pDrive = FDriveCreate (
  1309.                                 "MyFileName",
  1310.                                 "SAB Diskette Utility",
  1311.                                 "2.10"
  1312.                                ) ;
  1313.          ...
  1314.          FDriveFormatTrack ( pDrive, nCylinder, nHead ) ;
  1315. >>FDriveReadSectors
  1316. ------------------ SABDU001.DLL API: FDriveReadSectors ---------------
  1317.  
  1318.  UINT       FAR PASCAL FDriveReadSectors (
  1319.                                           VOID far *pFDrive,
  1320.                                           UNIT nCylinder,
  1321.                                           UNIT nHead,
  1322.                                           UINT nSector,
  1323.                                           UINT nCount,
  1324.                                           LPBYTE lpcBuffer
  1325.                                          )
  1326.  
  1327.  Reads a group of sectors from the drive pointerd to by pFDrive
  1328.  
  1329.  nCylinder     Cylinder to read from
  1330.  nHead         Head to read with
  1331.  nSector       Starting sector
  1332.  nCount        Number of sectors to read
  1333.  lpcBuffer     Buffer to contain the data read.
  1334.  
  1335.  Example:
  1336.          VOID far *pDriveA ;
  1337.  
  1338.          pDrive = FDriveCreate (
  1339.                                 "MyFileName",
  1340.                                 "SAB Diskette Utility",
  1341.                                 "2.10"
  1342.                                ) ;
  1343.          ...
  1344.          FDriveReadSectors ( pDrive, nCylinder, nHead, nSector,
  1345.                              nCount, lpcBuffer ) ;
  1346. >>FDriveWriteSectors
  1347. ------------------ SABDU001.DLL API: FDriveWriteSectors --------------
  1348.  
  1349.  UINT       FAR PASCAL FDriveWriteSectors (
  1350.                                            VOID far *pFDrive,
  1351.                                            UNIT nCylinder,
  1352.                                            UNIT nHead,
  1353.                                            UINT nSector,
  1354.                                            UINT nCount,
  1355.                                            LPBYTE lpcBuffer
  1356.                                           )
  1357.  
  1358.  Writes a group of sectors from the drive pointerd to by pFDrive
  1359.  
  1360.  nCylinder     Cylinder to read from
  1361.  nHead         Head to read with
  1362.  nSector       Starting sector
  1363.  nCount        Number of sectors to read
  1364.  lpcBuffer     Buffer to contain the data read.
  1365.  
  1366.  Example:
  1367.          VOID far *pDriveA ;
  1368.  
  1369.          pDrive = FDriveCreate (
  1370.                                 "MyFileName",
  1371.                                 "SAB Diskette Utility",
  1372.                                 "2.10"
  1373.                                ) ;
  1374.          ...
  1375.          FDriveWriteSectors ( pDrive, nCylinder, nHead, nSector,
  1376.                               nCount, lpcBuffer ) ;
  1377. >>HandleStatus
  1378. ------------------ SABDU001.DLL Callback: HandleStatus ---------------
  1379.  
  1380. typedef int (FAR PASCAL __export * lpfnHANDLESTATUS)(
  1381.                                                      UINT nStatus1,
  1382.                                                      UINT nStatus2,
  1383.                                                      UINT nParam1,
  1384.                                                      UINT nParam2,
  1385.                                                      LONG lParam1,
  1386.                                                      LONG lParam2
  1387.                                                     ) ;
  1388.  
  1389. int  FAR PASCAL __export HandleStatus (
  1390.                                        UINT nStatus1,
  1391.                                        UINT nStatus2,
  1392.                                        UINT nParam1,
  1393.                                        UINT nParam2,
  1394.                                        LONG lParam1,
  1395.                                        LONG lParam2
  1396.                                       ) ;
  1397.  
  1398.   nStatus1
  1399.   -------------------
  1400.     nStatus2                    nParam1               nParam2
  1401.     --------------------------- --------------------- --------------------
  1402.                                   lParam1               lParam2
  1403.                                   --------------------- ---------------
  1404.  
  1405.   STATUS1_INIT                  hWnd                  hInstance
  1406.   STATUS1_START
  1407.   STATUS1_BOOT_SECTOR
  1408.   STATUS1_DIRECTORY
  1409.   STATUS1_FAT
  1410.   STATUS1_SYSTEM_FILE
  1411.   STATUS1_CYLINDER              cylinder              percent complete
  1412.   STATUS1_HEAD
  1413.   STATUS1_END
  1414.   STATUS1_ERROR
  1415.     STATUS2_FILE                STATUS3_OPEN_FAIL
  1416.                                   file name pointer
  1417.     STATUS2_FILE                STATUS3_OPEN_FILE_IO_ERROR
  1418.                                   file name pointer
  1419.     STATUS2_FILE                STATUS3_OPEN_INPUT_BAD
  1420.                                   file name pointer
  1421.     STATUS2_FILE                STATUS3_OPEN_FLAGS_BAD
  1422.                                   file name pointer
  1423.     STATUS2_FILE                STATUS3_OPEN_NOT_SUPPORTED
  1424.                                   file name pointer
  1425.     STATUS2_READ                cylinder              head
  1426.     STATUS2_WRITE               cylinder              head
  1427.     STATUS2_FORMAT              cylinder              head
  1428.     STATUS2_FILE_READ
  1429.                                   file name pointer
  1430.     STATUS2_FILE_WRITE
  1431.                                   file name pointer
  1432.     STATUS2_DISK_SPACE
  1433.                                   space needed          space available
  1434.     STATUS2_HEAD                cylinder              head
  1435.     STATUS2_MEMORY
  1436.     STATUS2_SYSTEM
  1437.     STATUS2_FAT
  1438.     STATUS2_DIRECTORY
  1439.     STATUS2_BOOT_SECTOR
  1440.     STATUS2_SYSTEM_FILE_MISSING
  1441.     STATUS2_SYSTEM_FILE_OPEN
  1442.     STATUS2_COMPARE             cylinder              head
  1443.     STATUS2_DPT
  1444. >>MDrive
  1445. ------------------ SABDU001.DLL API: MDrive objects ------------------
  1446.  
  1447.  A MDrive (Memory Drive) is a specialized version of the VDrive
  1448.  (Virtual Drive).  It is an object that represents a diskette image in
  1449.  memory.
  1450.  
  1451.  The following functions are available to manipulate it:
  1452.      MDriveCreate        Creates a MDrive object
  1453.      MDriveDelete        Deletes a MDrive object
  1454.      MDriveForceReset    Issues a reset to the drive
  1455.      MDriveFormatTrack   Formats a track
  1456.      MDriveReadSectors   Reads a group of sectors from the drive
  1457.      MDriveReset         Issues a reset to the drive if it was used
  1458.      MDriveSetRead       Sets up for reading from the drive
  1459.      MDriveSetWrite      Sets up for writing to the drive
  1460.      MDriveWriteSectors  Writes a group of sectors to the drive
  1461. >>MDriveCreate
  1462. ------------------ SABDU001.DLL API: MDriveCreate --------------------
  1463.  
  1464.  VOID far * FAR PASCAL MDriveCreate (
  1465.                                      UINT nMemory,
  1466.                                      lpfnHANDLESTATUS lpfnNewHandleStatus
  1467.                                     )
  1468.  
  1469.  Creates a MDrive object associated with identifier nMemory and
  1470.  returns a pointer to it.
  1471.  
  1472.  lpfnNewHandleStatus points to a callback routine that handles event
  1473.  notifications including errors.
  1474.  
  1475.  Example:
  1476.          VOID far *pDrive1 ;
  1477.  
  1478.          pDrive1 = MDriveCreate ( 1, lpfnHandleStatus ) ;
  1479. >>MDriveDelete
  1480. ------------------ SABDU001.DLL API: MDriveDelete --------------------
  1481.  
  1482.  VOID       FAR PASCAL MDriveDelete (
  1483.                                      pMDrive
  1484.                                     )
  1485.  
  1486.  Deletes the MDrive object pointed to by pMDrive.
  1487.  
  1488.  Example:
  1489.          VOID far *pDrive1 ;
  1490.  
  1491.          pDrive1 = MDriveCreate ( 1 ) ;
  1492.          ...
  1493.          MDriveDelete ( pDrive1 ) ;
  1494.          pDrive1 = NULL ;
  1495. >>MDriveSetRead
  1496. ------------------ SABDU001.DLL API: MDriveSetRead -------------------
  1497.  
  1498.  UINT       FAR PASCAL MDriveSetRead (
  1499.                                       VOID far *pMDrive,
  1500.                                       UINT nTempType,
  1501.                                       UINT nCylinders
  1502.                                      )
  1503.  
  1504.  Prepares the MDrive object pointed to by pMDrive for reading.
  1505.  
  1506.  nTempType defines the type of diskette expected:
  1507.            FD0360 FD0720 FD1200 FD1440 FD2880
  1508.  
  1509.  nCylinders defines the number of cylinders.
  1510.  
  1511.  Example:
  1512.          VOID far *pDrive1 ;
  1513.  
  1514.          pDrive1 = MDriveCreate ( 1 ) ;
  1515.          ...
  1516.          MDriveSetRead ( pDrive1, FD0360, NULL ) ;
  1517. >>MDriveSetWrite
  1518. ------------------ SABDU001.DLL API: MDriveSetWrite ------------------
  1519.  
  1520.  UINT       FAR PASCAL MDriveSetWrite (
  1521.                                        VOID far *pMDrive,
  1522.                                        UINT nTempType,
  1523.                                        UINT nCylinders
  1524.                                       )
  1525.  
  1526.  Prepares the MDrive object pointed to by pMDrive for writing.
  1527.  
  1528.  nTempType defines the type of diskette expected:
  1529.            FD0360 FD0720 FD1200 FD1440 FD2880
  1530.  
  1531.  nCylinders defines the number of cylinders.
  1532.  
  1533.  Example:
  1534.          VOID far *pDrive1 ;
  1535.  
  1536.          pDrive1 = MDriveCreate ( 1 ) ;
  1537.          ...
  1538.          MDriveSetWrite ( pDrive1, FD0360, NULL ) ;
  1539. >>MDriveReset
  1540. ------------------ SABDU001.DLL API: MDriveReset ---------------------
  1541.  
  1542.  UINT       FAR PASCAL MDriveReset (
  1543.                                     VOID far *pMDrive
  1544.                                    )
  1545.  
  1546.  Resets the MDrive object pointed to by pMDrive.
  1547.  
  1548.  Example:
  1549.          VOID far *pDrive1 ;
  1550.  
  1551.          pDrive1 = MDriveCreate ( 1 ) ;
  1552.          ...
  1553.          MDriveReset ( pDrive1 ) ;
  1554. >>MDriveForceReset
  1555. ------------------ SABDU001.DLL API: MDriveForceReset ----------------
  1556.  
  1557.  UINT       FAR PASCAL MDriveForceReset (
  1558.                                          VOID far *pMDrive
  1559.                                         )
  1560.  
  1561.  Resets the MDrive object pointed to by pMDrive.
  1562.  
  1563.  Example:
  1564.          VOID far *pDrive1 ;
  1565.  
  1566.          pDrive1 = MDriveCreate ( 1 ) ;
  1567.          ...
  1568.          MDriveForceReset ( pDrive1 ) ;
  1569. >>MDriveFormatTrack
  1570. ------------------ SABDU001.DLL API: MDriveFormatTrack ---------------
  1571.  
  1572.  UINT       FAR PASCAL MDriveForceReset (
  1573.                                          VOID far *pMDrive,
  1574.                                          UNIT nCylinder,
  1575.                                          UNIT nHead
  1576.                                         )
  1577.  
  1578.  Formats the track pointed to by MDrive object pointer
  1579.  
  1580.  Example:
  1581.          VOID far *pDrive1 ;
  1582.  
  1583.          pDrive1 = MDriveCreate ( 1 ) ;
  1584.          ...
  1585.          MDriveFormatTrack ( pDrive1, nCylinder, nHead ) ;
  1586. >>MDriveReadSectors
  1587. ------------------ SABDU001.DLL API: MDriveReadSectors ---------------
  1588.  
  1589.  UINT       FAR PASCAL MDriveReadSectors (
  1590.                                           VOID far *pMDrive,
  1591.                                           UNIT nCylinder,
  1592.                                           UNIT nHead,
  1593.                                           UINT nSector,
  1594.                                           UINT nCount,
  1595.                                           LPBYTE lpcBuffer
  1596.                                          )
  1597.  
  1598.  Reads a group of sectors from the drive pointerd to by pMDrive
  1599.  
  1600.  nCylinder     Cylinder to read from
  1601.  nHead         Head to read with
  1602.  nSector       Starting sector
  1603.  nCount        Number of sectors to read
  1604.  lpcBuffer     Buffer to contain the data read.
  1605.  
  1606.  Example:
  1607.          VOID far *pDrive1 ;
  1608.  
  1609.          pDrive1 = MDriveCreate ( 1 ) ;
  1610.          ...
  1611.          MDriveReadSectors ( pDrive1, nCylinder, nHead, nSector,
  1612.                              nCount, lpcBuffer ) ;
  1613. >>MDriveWriteSectors
  1614. ------------------ SABDU001.DLL API: MDriveWriteSectors --------------
  1615.  
  1616.  UINT       FAR PASCAL MDriveWriteSectors (
  1617.                                            VOID far *pMDrive,
  1618.                                            UNIT nCylinder,
  1619.                                            UNIT nHead,
  1620.                                            UINT nSector,
  1621.                                            UINT nCount,
  1622.                                            LPBYTE lpcBuffer
  1623.                                           )
  1624.  
  1625.  Writes a group of sectors from the drive pointerd to by pMDrive
  1626.  
  1627.  nCylinder     Cylinder to read from
  1628.  nHead         Head to read with
  1629.  nSector       Starting sector
  1630.  nCount        Number of sectors to read
  1631.  lpcBuffer     Buffer to contain the data read.
  1632.  
  1633.  Example:
  1634.          VOID far *pDrive1 ;
  1635.  
  1636.          pDrive1 = MDriveCreate ( 1 ) ;
  1637.          ...
  1638.          MDriveWriteSectors ( pDrive1, nCylinder, nHead, nSector,
  1639.                               nCount, lpcBuffer ) ;
  1640. >>VDrive
  1641. ------------------ SABDU001.DLL API: VDrive objects ------------------
  1642.  
  1643.  A VDrive (Virtual Drive) is an object that represents a diskette
  1644.  image.
  1645.  
  1646.  The following functions are available to manipulate it:
  1647.      VDriveFlag              Returns the flags for the virtual drive
  1648.      VDriveForceReset        Forces a reset of the virtual drive
  1649.      VDriveFormatTrack       Formats a track
  1650.      VDriveIsRemote          Returns TRUE if media is remote
  1651.      VDriveIsRemovable       Returns TRUE if media is removable
  1652.      VDriveIsUseable         Returns TRUE if media is useable
  1653.      VDriveIsUsed            Returns TRUE if virtual drive was used
  1654.      VDriveLetter            Returns letter of vitual drive
  1655.      VDriveNumberOfCylinders Returns number of cylinders
  1656.      VDriveNumberOfHeads     Returns number of heads
  1657.      VDriveNumberOfSectors   Returns number of sectors
  1658.      VDriveReadSectors       Reads a group of sectors from the vitual drive
  1659.      VDriveReset             Resets the virtual drive if it was used
  1660.      VDriveSetRead           Sets up the virtual drive for reading
  1661.      VDriveSetType           Sets the type (density) of the virtual drive
  1662.      VDriveSetWrite          Sets up the virtual drive for writing
  1663.      VDriveType              Returns the type (density) of the virtual drive
  1664.      VDriveWriteSectors      Writes a group of sectors to the virutal drive
  1665. >>VDriveSetType
  1666. ------------------ SABDU001.DLL API: VDriveSetType -------------------
  1667.  
  1668.  UINT FAR PASCAL VDriveSetType (
  1669.                                 VOID far *pCVDrive,
  1670.                                 UINT nType
  1671.                                )
  1672.  
  1673.  Sets the type (density) for the virtual drive.
  1674.       nType = FD0360
  1675.               FD0720
  1676.               FD1200
  1677.               FD1200H
  1678.               FD1440
  1679.               FD1440H
  1680.               FD2880
  1681.  
  1682.  Returns nType if successfull or FD0000 if not.
  1683.  
  1684.  Example:
  1685.          VOID far *pDriveA ;
  1686.  
  1687.          VDriveSetType ( pDriveA, FD0720 ) ;
  1688. >>VDriveLetter
  1689. ------------------ SABDU001.DLL API: VDriveLetter --------------------
  1690.  
  1691.  char FAR PASCAL VDriveLetter (
  1692.                                VOID far *pCVDrive
  1693.                               )
  1694.  
  1695.  Returns the drive letter.
  1696.  
  1697.  Example:
  1698.          VOID far *pDriveA ;
  1699.          char cDrive ;
  1700.  
  1701.          cDrive = VDriveLetter ( pDriveA ) ;
  1702. >>VDriveType
  1703. ------------------ SABDU001.DLL API: VDriveType ----------------------
  1704.  
  1705.  UINT FAR PASCAL VDriveType (
  1706.                              VOID far *pCVDrive
  1707.                             )
  1708.  
  1709.  Returns the drive type (density).
  1710.  
  1711.  Example:
  1712.          VOID far *pDriveA ;
  1713.          UINT nType ;
  1714.  
  1715.          nType = VDriveType ( pDriveA ) ;
  1716. >>VDriveFlag
  1717. ------------------ SABDU001.DLL API: VDriveFlag ----------------------
  1718.  
  1719.  UINT FAR PASCAL VDriveFlag (
  1720.                              VOID far *pCVDrive
  1721.                             )
  1722.  
  1723.  Returns the drive flag.
  1724.  
  1725.  Example:
  1726.          VOID far *pDriveA ;
  1727.          UINT nFlag ;
  1728.  
  1729.          nFlag = VDriveFlag ( pDriveA ) ;
  1730. >>VDriveNumberOfCylinders
  1731. ------------------ SABDU001.DLL API: VDriveNumberOfCylinders ---------
  1732.  
  1733.  UINT FAR PASCAL VDriveNumberOfCylinders (
  1734.                                           VOID far *pCVDrive
  1735.                                          )
  1736.  
  1737.  Returns the number of cylinders.
  1738.  
  1739.  Example:
  1740.          VOID far *pDriveA ;
  1741.          UINT nCylinders ;
  1742.  
  1743.          nCylinders = VDriveNumberOfCylinders ( pDriveA ) ;
  1744. >>VDriveNumberOfHeads
  1745. ------------------ SABDU001.DLL API: VDriveNumberOfHeads -------------
  1746.  
  1747.  UINT FAR PASCAL VDriveNumberOfHeads (
  1748.                                       VOID far *pCVDrive
  1749.                                      )
  1750.  
  1751.  Returns the number of heads.
  1752.  
  1753.  Example:
  1754.          VOID far *pDriveA ;
  1755.          UINT nHeads ;
  1756.  
  1757.          nHeads = VDriveNumberOfHeads ( pDriveA ) ;
  1758. >>VDriveNumberOfSectors
  1759. ------------------ SABDU001.DLL API: VDriveNumberOfSectors -----------
  1760.  
  1761.  UINT FAR PASCAL VDriveNumberOfSectors (
  1762.                                         VOID far *pCVDrive
  1763.                                        )
  1764.  
  1765.  Returns the number of sectors.
  1766.  
  1767.  Example:
  1768.          VOID far *pDriveA ;
  1769.          UINT nSectors ;
  1770.  
  1771.          nSectors = VDriveNumberOfSectors ( pDriveA ) ;
  1772. >>VDriveIsRemote
  1773. ------------------ SABDU001.DLL API: VDriveIsRemote ------------------
  1774.  
  1775.  BOOL FAR PASCAL VDriveIsRemote (
  1776.                                  VOID far *pCVDrive
  1777.                                 )
  1778.  
  1779.  Returns TRUE if the media is remote.
  1780.  
  1781.  Example:
  1782.          VOID far *pDriveA ;
  1783.          BOOL bRemote ;
  1784.  
  1785.          bRemote = VDriveIsRemote ( pDriveA ) ;
  1786. >>VDriveIsRemovable
  1787. ------------------ SABDU001.DLL API: VDriveIsRemovable ---------------
  1788.  
  1789.  BOOL FAR PASCAL VDriveIsRemovable (
  1790.                                     VOID far *pCVDrive
  1791.                                    )
  1792.  
  1793.  Returns TRUE if the media is removable.
  1794.  
  1795.  Example:
  1796.          VOID far *pDriveA ;
  1797.          BOOL bRemovable ;
  1798.  
  1799.          bRemovable = VDriveIsRemovable ( pDriveA ) ;
  1800. >>VDriveIsUseable
  1801. ------------------ SABDU001.DLL API: VDriveIsUseable -----------------
  1802.  
  1803.  BOOL FAR PASCAL VDriveIsUseable (
  1804.                                   VOID far *pCVDrive
  1805.                                  )
  1806.  
  1807.  Returns TRUE if the media is useable.
  1808.  
  1809.  Example:
  1810.          VOID far *pDriveA ;
  1811.          BOOL bUseable ;
  1812.  
  1813.          bUseable = VDriveIsUseable ( pDriveA ) ;
  1814. >>VDriveIsUsed
  1815. ------------------ SABDU001.DLL API: VDriveIsUsed --------------------
  1816.  
  1817.  BOOL FAR PASCAL VDriveIsUsead (
  1818.                                 VOID far *pCVDrive
  1819.                                )
  1820.  
  1821.  Returns TRUE if the media is used.
  1822.  
  1823.  Example:
  1824.          VOID far *pDriveA ;
  1825.          BOOL bUsed ;
  1826.  
  1827.          bUsed = VDriveIsUsed ( pDriveA ) ;
  1828. >>VDriveReset
  1829. ------------------ SABDU001.DLL API: VDriveReset ---------------------
  1830.  
  1831.  UINT FAR PASCAL VDriveReset (
  1832.                               VOID far *pCVDrive
  1833.                              )
  1834.  
  1835.  Returns FALSE if successfull.
  1836.  
  1837.  Example:
  1838.          VOID far *pDriveA ;
  1839.          BOOL bReset ;
  1840.  
  1841.          bReset = !VDriveReset ( pDriveA ) ;
  1842. >>VDriveFormatTrack
  1843. ------------------ SABDU001.DLL API: VDriveFormatTrack ---------------
  1844.  
  1845.  UINT FAR PASCAL VDriveFormatTrack (
  1846.                                     VOID far *pCVDrive,
  1847.                                     UINT nCylinder,
  1848.                                     UINT nHead
  1849.                                    )
  1850.  
  1851.  Returns FALSE if successfull.
  1852.  
  1853.  Example:
  1854.          VOID far *pDriveA ;
  1855.          BOOL bFormat ;
  1856.  
  1857.          bFormat = !VDriveFormatTrack ( pDriveA, nCylinder, nHead ) ;
  1858. >>VDriveReadSectors
  1859. ------------------ SABDU001.DLL API: VDriveReadSectors ---------------
  1860.  
  1861.  UINT FAR PASCAL VDriveReadSectors (
  1862.                                     VOID far *pCVDrive,
  1863.                                     UINT nCylinder,
  1864.                                     UINT nHead
  1865.                                    )
  1866.  
  1867.  Returns FALSE if successfull.
  1868.  
  1869.  Example:
  1870.          VOID far *pDriveA ;
  1871.          BOOL bRead ;
  1872.  
  1873.          bRead = !VDriveReadSectors ( pDriveA, nCylinder, nHead,
  1874.                                       nSector, nCount, LPBYTE lpcBuffer ) ;
  1875. >>VDriveWriteSectors
  1876. ------------------ SABDU001.DLL API: VDriveWriteSectors --------------
  1877.  
  1878.  UINT FAR PASCAL VDriveWriteSectors (
  1879.                                      VOID far *pCVDrive,
  1880.                                      UINT nCylinder,
  1881.                                      UINT nHead
  1882.                                     )
  1883.  
  1884.  Returns FALSE if successfull.
  1885.  
  1886.  Example:
  1887.          VOID far *pDriveA ;
  1888.          BOOL bWrite ;
  1889.  
  1890.          bWrite = !VDriveWriteSectors ( pDriveA, nCylinder, nHead,
  1891.                               nSector, nCount, LPBYTE lpcBuffer ) ;
  1892.